function table.TryGetValue(t, key)
    if t == nil then
        return nil
    end
    for k, v in pairs(t) do
        if k == key then
            return v
        end
    end
    return nil
end

function table.TryRemoveValue(t, value)
    if t == nil then
        return
    end
    local index
    for k, v in pairs(t) do
        if v == value then
            index = k
            break
        end
    end
    if index ~= nil then
        table.remove(t, index)
    end
end